﻿// Study0902.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// 第九章 群体数据 类模板

#include <iostream>
#include <cstdlib>
using namespace std;

struct Student
{
	int id;
	float gpa;
};

template<class T>
class Store
{
public:
	Store<T>() : isHaveValue(false) {}
	T& getElement()
	{
		if (isHaveValue != true)
		{
			cout << "没有元素真实！" << endl;
			exit(1);
		}
		return item;
	}
	void putElement(const T& x)
	{
		isHaveValue = true;
		item = x;
	}
private:
	T item;
	bool isHaveValue;
};

int main()
{
	Store<int> a1, a2;
	a1.putElement(3);
	a2.putElement(-7);
	cout << a1.getElement() << " " << a2.getElement() << endl;

	Student g{1000,23};
	Store<Student> s1;
	s1.putElement(g);
	cout<< s1.getElement().id<<" "<< s1.getElement().gpa << endl;

	Store<double> d1;
	cout << d1.getElement()<< endl;

	return 0;
}


